package com.ruoyi.service.archives.impl;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.domain.archives.PAdoptInfo;
import com.ruoyi.mapper.archives.PAdoptInfoMapper;
import com.ruoyi.service.archives.PAdoptInfoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

/**
 * @Author lz
 * @Version 1.0
 * @Company 滁州大健康与养老产业研究院
 * @ClassName PAdoptInfoServiceImpl
 * @Description 爬山猪领养业务逻辑层
 * @Date 2022/05/22 19:19
 */
@Service
public class PAdoptInfoServiceImpl implements PAdoptInfoService {

    protected final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Resource
    private PAdoptInfoMapper adoptInfoMapper;

    /**
     * 分页模糊查询所有领养人的信息
     * @param adoptInfo 领养人信息
     * @return 总数据
     */
    @Override
    public List<PAdoptInfo> getAdoptInfoList(PAdoptInfo adoptInfo) {
        return adoptInfoMapper.getAdoptInfoList(adoptInfo);
    }

    /**
     * 添加领养人信息
     * @param pAdoptInfo 领养人信息
     * @return 受影响行数
     */
    @Override
    public int addAdoptInfo(PAdoptInfo pAdoptInfo) {

        // 根据手机号判断领养人信息是否已经存在
        int isExists = adoptInfoMapper.hasExistsInfoByPhone(pAdoptInfo.getAdoptPhone());
        if (isExists > 0) {
            return -1;
        }

        if (pAdoptInfo.getCreateTime() == null) {
            pAdoptInfo.setCreateTime(new Date());
        }
        int row = adoptInfoMapper.addAdoptInfo(pAdoptInfo);
        return row;
    }

    /**
     *  根据用户id修改用户信息
     * @param pAdoptInfo 用户信息
     * @return 受影响的行数
     */
    @Override
    public int updateAdoptInfoById(PAdoptInfo pAdoptInfo) {
        if (ObjectUtil.isEmpty(pAdoptInfo)) {
            logger.error("领养对象信息为空值");
            return 0;
        }
        return adoptInfoMapper.updateAdoptInfoById(pAdoptInfo);
    }

    /**
     * 根据用户id批量逻辑删除领养人信息
     * @param configIds 要删除的领养人id
     * @return 受影响的行数
     */
    @Override
    public int deleteAdoptInfoById(Long[] configIds) {
        return adoptInfoMapper.deleteAdoptInfoById(configIds);
    }

}
